from IPython.display import HTML
import pandas as pd
import datetime
HTML('''<script>
code_show=true;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit" value="Source"></form>''')
Data retrieved on: 21-09-2019
The Product Management Metrics & OKRs are derived from two sources of data- issue metadata and parent/child relationships between PM and Engineering JIRA issues. Figure 1.0 details the proposed metadata and relationships.
To support the veracity of the data acquired, it is requested that Product Engineering contribute to the mapping of Engineering issues to Product Management issues.
Raw changelog and issue metadata is retrieved using the Python JIRA API and transformed using Pandas. Figure 2.0 contains a sample from the PM JIRA project dataset.
Proposed Metadata and relationship between PM & Engineering JIRA issues.
Sample of data extracted from PM → Engineering JIRA issue relationships.
pd.set_option('display.max_columns', None)
sample = pd.read_csv('pm_changelog_clean.csv').drop(['Unnamed: 0', 'remove'], axis=1)
sample[100:105]
The number of issues closed and hours spent towards each of the product investment categories (Product Backlog, CRT, Quality and Engineering) by release and milestone.
For each release, a subset of issues do not include metadata (as listed below) that corresponds to Product Backlog, CRT, Quality or Engineering categories. Accordingly, the percentages listed for categories in each release do not have a sum total of 100%.
| Data Point | Data Source | Work Metric | Time Metric |
|---|---|---|---|
| Milestone | Label: Milestone, Date Range |
N/A | N/A |
| Release | Field: Fix_Version, Date Range |
N/A | N/A |
| Product Backlog | Children of issues linked to PM issue | Sum of Closed Issues in milestone label/date range. | Sum time deltas of status changes to doing, test, documentation, verified, closed. |
| CRT | Label: Customer_Priority, Services_Priority on PM issue |
Sum of Closed Issues in milestone label/date range. | Sum time deltas of status changes to doing, test, documentation, verified, closed. |
| Quality | Issue Type: Bug |
Sum of Closed Issues in milestone label/date range. | Sum time deltas of status changes to doing, test, documentation, verified, closed. |
| Engineering | Label: DDB, Delta between PM-linked issues and all Engineering issues |
Sum of Closed Issues in milestone label/date range. | Sum time deltas of status changes to doing, test, documentation, verified, closed. |
from scripts import metrics_okrs
import importlib
from pandas.api.types import is_string_dtype
importlib.reload(metrics_okrs)
metrics_okrs.milestone_investment('5.7.0')
metrics_okrs.milestone_investment('5.6.0')
metrics_okrs.milestone_investment('5.5.0')
The number of issues closed, open issues remaining and time spent towards product objectives (Strategic Accounts, vJSX, Performance, Cloud JSX, RN Upgrade, Enablement and Platform) by release and milestone.
| Data Point | Data Source | Work Metric | Time Metric |
|---|---|---|---|
| Milestone | Label: Milestone, Date Range |
N/A | N/A |
| Release | Field: Fix_Version, Date Range |
N/A | N/A |
| Product Backlog | Label: Strategic_Accounts, vJSX, Performance, Cloud JSX, RN Upgrade, Enablement, Platform |
Sum of closed issues with Product Backlog label in milestone label/date range. Sum of total issues with Product Backlog label in milestone label/date range. |
Sum time deltas of status changes to doing, test, documentation, verified, closed. |
importlib.reload(metrics_okrs)
metrics_okrs.pm_okrs()
Forthcoming